/**
 * docx 字体大小为 half-point 半磅  10pt * 2
 */
export function convertFontSize(fontSize) {
  // 这里只使用了 pt 只做pt 处理

  return convertToNumber(fontSize) * 2
}

export function convertPtToTwips(pt: number) {
  return pt * 20
}

// 提取数字
export function convertToNumber(cssString) {
  const match = cssString?.match(/(\d+(\.\d+)?)/)

  return match ? parseFloat(match[0]) : 0
}

// rgb 转为 hex 颜色格式
export function rgbToHexColor(rgb) {
  // 首先使用正则表达式匹配RGB颜色值
  const rgbMatch = rgb.match(
    /^rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(?:,\s*[\d.]+)?\)$/
  )

  // 将匹配到的RGB值转换为十六进制字符串
  function convertToHex(rgbComponent) {
    const hex = Number(rgbComponent).toString(16)
    return hex.length === 1 ? '0' + hex : hex
  }

  if (rgbMatch) {
    const r = convertToHex(rgbMatch[1])
    const g = convertToHex(rgbMatch[2])
    const b = convertToHex(rgbMatch[3])

    // 返回十六进制颜色值
    return '#' + r + g + b
  } else {
    return rgb // 如果输入不是有效的RGB值，则返回原始字符串
  }
}

export function isHexColor(hex) {
  const regExp = /^#(?:[A-Fa-f0-9]{3}){1,2}$|^#(?:[A-Fa-f0-9]{4}){1,2}$/
  return regExp.test(hex)
}

export function pxToPt(num) {
  return num * (72 / 96)
}
